const map=require('./utils/mapconfig');
var qqmapsdk = map.qqmapsdk;

App({

  //全局数据
  globalData:{
    defaultCity:'正在定位...',
    defaultCounty:'',
    userLocation:'',
    qqmapsdk:map.qqmapsdk,
    openid:null,
    userInfo:null
  },


    onLaunch: function () {
        this.initPage();

       


        // qqmapsdk.getCityList({
        //   success: function(res) {//成功后的回调
        //     console.log(res);
        //     console.log('省份数据：', res.result[0]); //打印省份数据
        //     console.log('城市数据：', res.result[1]); //打印城市数据
        //     console.log('区县数据：', res.result[2]); //打印区县数据
        //   },
        // })

        


        
                // 强制打开调试
            
              // wx.setEnableDebug({
              //   enableDebug: true
       
          
             
        
 
    },
      initPage() {
        // 获取用户授权信息,防止重复出现授权弹框
        wx.getSetting({
      
          success: res => {
         
            // console.log(res.authSetting['scope.userLocation']);
      
            //已有权限直接获得信息，否则出现授权弹框
            if (res.authSetting['scope.userLocation']) {
          
              this.getUserLocation()
            } else{
        
              this.getUserLocation()
              
            }
          }
        })
      },
      //获取用户的位置信息
      getUserLocation() {
        wx.getLocation({
          //成功授权
          success: (res) => {
            const latitude = res.latitude;
            const longitude = res.longitude;
            // 使用腾讯地图接口将位置坐标转出成名称（为什么弹框出出现两次？）
            qqmapsdk.reverseGeocoder({
              location: {   //文档说location默认为当前位置可以省略，但是还是要手动加上，否则弹框会出现两次，手机端则出现问题
                latitude,
                longitude
              },
              success: (res) => {
                const cityFullname = res.result.address_component.city; //城市全名
                const disrtrict=res.result.address_component.district;
                const cityInfo = {
                  latitude,
                  longitude,
                  cityName: cityFullname.substring(0, cityFullname.length - 1),
                  disrtrict
                };//城市详细信息
                this.globalData.userLocation = { ...cityInfo };   //浅拷贝对象
                this.globalData.defaultCity =cityFullname;  //浅拷贝对象
                // 由于 getlocation 是网络请求，可能会在 Page.onLoad 之后才返回，所以此处加入 callback 以防止这种情况
                if (this.userLocationReadyCallback) {
                  this.userLocationReadyCallback()
                }
              }
            })
          },
          fail: () => {
            this.globalData.userLocation = { status: 0 }
            let that=this
            wx.getSetting({
              success:function(res){
                  if(!res.authSetting['scope.userLocation']){
                    //用户拒绝授权
                    wx.showModal({
                      title: '警告',
                      content: '您点击了拒绝授权,将无法正常显示个人信息,点击确定重新获取授权。',
                      success:function(res){
                        if(res.confirm){
                          //用户点击了确定重新获取
                          wx.openSetting({
                            success:function(){
                              that.getUserLocation()
                            }
                          })
        
                        }
                      },
                      
                    })
                  }else{
                    //用户手机定位未开启
                    wx.showModal({
                      title: '',
                      content: '您未开启手机定位，请在系统设置中打开定位服务并上拉刷新页面',
                      confirmText: '确定'
                    
                    })
                  }
              }
            })

            
            //防止当弹框出现后，用户长时间不选择，
            if (this.userLocationReadyCallback) {
              this.userLocationReadyCallback()
            }
          }
        })
      },





      

})